1. Field of the Invention
This invention relates to automated semiconductor manufacturing process control, and more particularly to an active starvation avoidance lot start agent that calculates virtual work in process time (VWIP) for each product at each bottleneck in a multi-product and multi-bottleneck manufacturing environment.
2. Description of the Related Art
Semiconductor factories are relatively complex and costly to operate. Automated control of semiconductor manufacturing processes can provide a mechanism for attaining optimal factory performance, improving the quality and lowering the cost of production, expanding the production rate, and relieving the drudgery of many routine, repetitive manual operations.
Controlling a semiconductor factory, however, is a challenging task. A semiconductor factory (xe2x80x9cfabxe2x80x9d) is a complex environment where numerous parts, typically 40 thousand wafers or more, and numerous part types, typically 100 part types or more, are simultaneously being manufactured. As each wafer moves through the fab, it may undergo more than 300 processing steps, many of which use the same machines. A large factory may contain approximately 500 computer-controlled machines to perform this wafer processing. Routing, scheduling, and tracking material through one of these factories is a difficult and complicated task, even with the assistance of a computerized factory control system.
In attempting to develop computerized models and computerized control mechanisms for semiconductor manufacturing plants, the inventors have discovered that it is useful to utilize an object-oriented approach. Object-orientation is a technique for system modeling that models a system as a number of xe2x80x9cobjectsxe2x80x9d that interact. The result of this approach is the definition of a number of objects within the system that are related in some way. Each object is a specific instantiation of a particular class, with certain attributes and operations characterizing the class.
In developing a computerized system for modeling and controlling a semiconductor manufacturing plant, it is useful to understand the important role of xe2x80x9ccycle time.xe2x80x9d Cycle time is the time it takes to manufacture a product from start to finish, and is defined to be the time a job spends in the manufacturing facility, including processing time plus waiting time. Cycle time is a key factory metric for manufacturing plants, including those in the semiconductor industry. Due to the complexity of the manufacturing process, product cycle times in semiconductor manufacturing facilities (xe2x80x9cfabxe2x80x9d) can exceed 8 weeks.
Another important metric in the semiconductor fabrication context is the throughput rate. The throughput rate is the average number of wafers that leave the fab per unit of time.
For many reasons, it is highly desirable to reduce cycle time as much as possible without sacrificing factory throughput or on-time delivery. One reason is that reducing cycle time allows learning to occur more rapidly so yield and product improvements can be introduced more quickly. Also, an enterprise with low cycle times is inherently more flexible and can adapt quickly to changes in the marketplace or other business conditions. A third reason that it is desirable to minimize cycle time, and consequently, waiting time, is that a decrease in waiting time decreases the time a wafer is exposed to particles in the clean room, thus increasing yield.
Cycle time is related to Work-in-Process (WIP) by Little""s Law:
WIP=Cycle Time*Throughput Rate
From this formula it is clear that, by holding the throughput rate constant and reducing WIP, cycle time is reduced. In order to maintain maximum throughput, idle time on the most highly utilized (xe2x80x9cbottleneckxe2x80x9d) machines in the manufacturing process must be minimized. It is thus important not to reduce WIP so much that a xe2x80x9cbottleneckxe2x80x9d machine experiences idle time (i.e., xe2x80x9cstarvesxe2x80x9d), which results in lost production and reduction in throughput rate.
What is needed is an efficient, automated manner of reducing WIP in a semiconductor fab, and thereby reducing cycle time, without sacrificing throughput.
In the terminology of object-oriented computing, a software xe2x80x9cagentxe2x80x9d is an autonomous, active object. Given its set of methods and operations, a software agent can take independent action in response to local conditions, thereby generating adaptable system behavior. The present invention presents an agent-enhanced system that defines, configures, and deploys autonomous and mobile xe2x80x9csoftware agentsxe2x80x9d that mimic and improve the functioning of xe2x80x9creal worldxe2x80x9d agents in a semiconductor manufacturing plant such as factory workers, material, equipment, processes, etc.
A system is provided, wherein the system calculates virtual WIP time (xe2x80x9cVWIPxe2x80x9d) in a manufacturing facility. VWIP is the amount of time a bottleneck will stay busy processing WIP that will reach the bottleneck in less time than new lot starts. The system comprises a software object that provides for calculation of one or more bottleneck VWIP values. Each of the bottleneck VWIP values represents the amount of work approaching one of n bottleneck workstations. In at least one embodiment, n greater than 2. The work approaching the bottleneck workstation comprises at least one of m products, where m greater than 0. The software object contains program code that provides for the foregoing functionality either directly or by invoking one or more other objects.
In at least one embodiment, the system provides for applying an exponentially weighted moving average to one or more of the bottleneck VWIP values. In at least one other embodiment, the system provides for position-based segment weighting. In at least one other embodiment, the system provides for including the VWIP value for an operation into the VWIP value for overlapping segments. In at least one other embodiment, the system provides for application of a linear probability function to the operation VWIP value. In at least one other embodiment, the system provides for determining whether lots on hold should be excluded from the segment VWIP value.
In at least one embodiment, a method of calculating VWIP in a manufacturing facility comprises providing a software object that provides for calculation of one or more bottleneck VWIP values. Each of the bottleneck VWIP values represents the amount of work approaching one of n bottleneck workstations. The work approaching the bottleneck workstation comprises at least one of m products, where m greater than 0. In at least one embodiment, n greater than 2. The software object contains program code that provides for the foregoing functionality either directly or by invoking one or more other objects.
In at least one embodiment, the method provides for applying an exponentially weighted moving average to one or more of the bottleneck VWIP values. In at least one other embodiment, the method provides for position-based segment weighting. In at least one other embodiment, the method provides for including the VWIP value for an operation into the VWIP value for overlapping segments. In at least one other embodiment, the method provides for application of a linear probability function to the operation VWIP value. In at least one other embodiment, the method provides for determining whether to exclude lots on hold from the segment VWIP value.
At least one other embodiment of a method is provided, wherein the method is performed without necessarily requiring software objects. The method comprises calculating one or more bottleneck VWIP values. Each of the bottleneck VWIP values represents the amount of work approaching one of n bottleneck workstations. The work approaching the bottleneck workstation comprises at least one of m products, where m greater than 0. In at least one embodiment, n greater than 2.
In at least one embodiment, the method includes applying an exponentially weighted moving average to one or more of the bottleneck VWIP values. In at least one other embodiment, the method includes position-based segment weighting. In at least one other embodiment, the method includes factoring the VWIP value for an operation into the VWIP value for overlapping segments. In at least one other embodiment, the method includes application of a linear probability function to the operation VWIP value. In at least one other embodiment, the method provides for determining whether to exclude lots on hold from the segment VWIP value.
A manufacturing system is also provided. The manufacturing system includes one or more bottleneck workstations and also includes an automated system. The automated system calculates virtual WIP time (xe2x80x9cVWIPxe2x80x9d) in a manufacturing facility. The automated system includes a software object that provides for calculation of one or more bottleneck VWIP values. Each of the bottleneck VWIP values represents the amount of work approaching one of n bottleneck workstations. The work approaching the bottleneck workstation comprises at least one of m products, where m greater than 0. In at least one embodiment, n greater than 2. The software object contains program code that provides for the foregoing functionality either directly or by invoking one or more other objects.
In at least one embodiment of the manufacturing facility, the software object provides for applying an exponentially weighted moving average to one or more of the bottleneck VWIP values. In at least one other embodiment of the manufacturing facility, the software object provides for position-based segment weighting. In at least one other embodiment of the manufacturing facility, the software object provides for including the VWIP value for an operation into the VWIP value for overlapping segments. In at least one other embodiment of the manufacturing facility, the software object provides for application of a linear probability function to the operation VWIP value. In at least one other embodiment of the manufacturing facility, the software object provides for determining whether to exclude lots on hold from the segment VWIP value. In each of the embodiments described in this paragraph, the software object contains program code that provides for the foregoing functionality either directly or by invoking one or more other objects.